home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / dn.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  5KB  |  150 lines

  1. #ifndef _LINUX_DN_H
  2. #define _LINUX_DN_H
  3.  
  4. #include <linux/types.h>
  5.  
  6. /*
  7.  
  8.     DECnet Data Structures and Constants
  9.  
  10. */
  11.  
  12. /* 
  13.  * DNPROTO_NSP can't be the same as SOL_SOCKET, 
  14.  * so increment each by one (compared to ULTRIX)
  15.  */
  16. #define DNPROTO_NSP     2                       /* NSP protocol number       */
  17. #define DNPROTO_ROU     3                       /* Routing protocol number   */
  18. #define DNPROTO_NML     4                       /* Net mgt protocol number   */
  19. #define DNPROTO_EVL     5                       /* Evl protocol number (usr) */
  20. #define DNPROTO_EVR     6                       /* Evl protocol number (evl) */
  21. #define DNPROTO_NSPT    7                       /* NSP trace protocol number */
  22.  
  23.  
  24. #define DN_ADDL        2
  25. #define DN_MAXADDL    2 /* ULTRIX headers have 20 here, but pathworks has 2 */
  26. #define DN_MAXOPTL    16
  27. #define DN_MAXOBJL    16
  28. #define DN_MAXACCL    40
  29. #define DN_MAXALIASL    128
  30. #define DN_MAXNODEL    256
  31. #define DNBUFSIZE    65023
  32.  
  33. /* 
  34.  * SET/GET Socket options  - must match the DSO_ numbers below
  35.  */
  36. #define SO_CONDATA      1
  37. #define SO_CONACCESS    2
  38. #define SO_PROXYUSR     3
  39. #define SO_LINKINFO     7
  40.  
  41. #define DSO_CONDATA     1        /* Set/Get connect data                */
  42. #define DSO_DISDATA     10       /* Set/Get disconnect data             */
  43. #define DSO_CONACCESS   2        /* Set/Get connect access data         */
  44. #define DSO_ACCEPTMODE  4        /* Set/Get accept mode                 */
  45. #define DSO_CONACCEPT   5        /* Accept deferred connection          */
  46. #define DSO_CONREJECT   6        /* Reject deferred connection          */
  47. #define DSO_LINKINFO    7        /* Set/Get link information            */
  48. #define DSO_STREAM      8        /* Set socket type to stream           */
  49. #define DSO_SEQPACKET   9        /* Set socket type to sequenced packet */
  50. #define DSO_MAXWINDOW   11       /* Maximum window size allowed         */
  51. #define DSO_NODELAY    12       /* Turn off nagle                      */
  52. #define DSO_CORK        13       /* Wait for more data!                 */
  53. #define DSO_SERVICES    14       /* NSP Services field                  */
  54. #define DSO_INFO    15       /* NSP Info field                      */
  55. #define DSO_MAX         15       /* Maximum option number               */
  56.  
  57.  
  58. /* LINK States */
  59. #define LL_INACTIVE    0
  60. #define LL_CONNECTING    1
  61. #define LL_RUNNING    2
  62. #define LL_DISCONNECTING 3
  63.  
  64. #define ACC_IMMED 0
  65. #define ACC_DEFER 1
  66.  
  67. #define SDF_WILD        1                  /* Wild card object          */
  68. #define SDF_PROXY       2                  /* Addr eligible for proxy   */
  69. #define SDF_UICPROXY    4                  /* Use uic-based proxy       */
  70.  
  71. /* Structures */
  72.  
  73.  
  74. struct dn_naddr 
  75. {
  76.     __le16        a_len;
  77.     __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */
  78. };
  79.  
  80. struct sockaddr_dn
  81. {
  82.     __u16        sdn_family;
  83.     __u8        sdn_flags;
  84.     __u8        sdn_objnum;
  85.     __le16        sdn_objnamel;
  86.     __u8        sdn_objname[DN_MAXOBJL];
  87.     struct   dn_naddr    sdn_add;
  88. };
  89. #define sdn_nodeaddrl   sdn_add.a_len   /* Node address length  */
  90. #define sdn_nodeaddr    sdn_add.a_addr  /* Node address         */
  91.  
  92.  
  93.  
  94. /*
  95.  * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure
  96.  */
  97. struct optdata_dn {
  98.         __le16  opt_status;     /* Extended status return */
  99. #define opt_sts opt_status
  100.         __le16  opt_optl;       /* Length of user data    */
  101.         __u8   opt_data[16];   /* User data              */
  102. };
  103.  
  104. struct accessdata_dn
  105. {
  106.     __u8        acc_accl;
  107.     __u8        acc_acc[DN_MAXACCL];
  108.     __u8         acc_passl;
  109.     __u8        acc_pass[DN_MAXACCL];
  110.     __u8         acc_userl;
  111.     __u8        acc_user[DN_MAXACCL];
  112. };
  113.  
  114. /*
  115.  * DECnet logical link information structure
  116.  */
  117. struct linkinfo_dn {
  118.         __u16  idn_segsize;    /* Segment size for link */
  119.         __u8   idn_linkstate;  /* Logical link state    */
  120. };
  121.  
  122. /*
  123.  * Ethernet address format (for DECnet)
  124.  */
  125. union etheraddress {
  126.         __u8 dne_addr[6];             /* Full ethernet address */
  127.   struct {
  128.                 __u8 dne_hiord[4];    /* DECnet HIORD prefix   */
  129.                 __u8 dne_nodeaddr[2]; /* DECnet node address   */
  130.   } dne_remote;
  131. };
  132.  
  133.  
  134. /*
  135.  * DECnet physical socket address format
  136.  */
  137. struct dn_addr {
  138.         __le16 dna_family;      /* AF_DECnet               */
  139.         union etheraddress dna_netaddr; /* DECnet ethernet address */
  140. };
  141.  
  142. #define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */
  143.  
  144. #define SIOCSNETADDR  _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr)
  145. #define SIOCGNETADDR  _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr)
  146. #define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int)
  147. #define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int)
  148.  
  149. #endif /* _LINUX_DN_H */
  150.